package me.tuyou.jvm.constantPool;

public class StringConstantTest {

	public static void main(String[] args) {
		
		String s = new String("1"); //新创建一个字符串"1"，但没有放入常量池
		s.intern(); //放入常量池，并返回常量池地址，java7之前返回的是Perm代地址，java7之后返回的是heap地址
		String s2 = "1"; //会尝试放入常量池中，虽然常量池已经有了此对象，但是返回的是堆上的地址
		System.out.println(s == s2); //false
		System.out.println(s.intern() == s2); //true

		//java7之前相当于String s5 = new String("3");s5.intern();
		//java7之后相当于String s5 = new String("3").intern();
		String s5 = "3";
		String s6 = "3";
		System.out.println(s5 == s6); //java7之前为false，java7之后为true
	}
}
